System and method of providing a game

ABSTRACT

The disclosure relates to a system and a method of providing a game over a peer to peer network. The disclosure provides a method of providing a game over a peer to peer (P2P) game network, wherein the P2P game network comprises a plurality of user devices as the nodes of the network. The P2P game network is arranged to generate or process game data on a subset of the user devices of the game network in response to a user device not being a member of the subset user devices, generating a game data request to play a game.

FIELD OF THE INVENTION

The disclosure relates to a system and a method of providing a game overa peer to peer network.

BACKGROUND TO THE INVENTION

Many game applications require a random number or a similar random gameelement to be used as the game input. For example, game of chance, suchas lotteries, scratchies, poker machines or the like all use one or morerandom numbers or graphic elements as the input of a game. By ‘game ofchance’ it is generally meant a game whose outcome is determined by thecorrelation between game input generated by a randomizing component,which may be a hardware and/or a software component, and the game inputdecided by a user. Commonly used randomizing hardware component mayinclude dice, spinning tops, ball drawing machine, roulette wheels orthe like. While people have been using these hardware randomizingcomponents for many years, it has been challenging to program a computeror other similar electronic devices to generate a true random number.Machines follow algorithms, which, over time, are repeated in pattern,creating pseudo-randomisation instead of true randomisation.

Nowadays, some games of chance are implemented using computer systems.The random game input required for a game (e.g. lotto numbers) is oftengenerated by a central server, or locally generated on user devices(e.g. mobile phones, tablet devices) owned by participants of the games.In a system that employs a central server or singularity based hostmachines, all game states or outcomes are dependent on the output of oneor a series of centrally controlled machines. For central server basedsystems, the cost of infrastructure and maintenance becomes significantas the number of system users increases. If the central server fails ormalfunctions, the entire game system will be down. On another hand, if auser device is programmed to generate game input data, then there may bean opportunity for fraudulent activity. For example a user device may beprogrammed to generate game input that is only favourable to selectedplayers.

Finally, traditional game of chance typically requires a bet, wager orquantifiable transaction which the player has to exchange to play thegame. Thus the cost of playing or the risk of losing a player's stakemay discourage potential players from using such system. Players ofthese games may become addicted or end up spending a large amount ofmoney on such activities.

SUMMARY OF THE INVENTION

It is an object of the disclosure to provide a method for providing agame, a system for playing a game, system components and a game thataddresses at least some of the issues mentioned above, or to at leastprovide an alternative choice for the public.

In a first aspect, the disclosure provides a method of providing a gameover a peer to peer (P2P) game network, wherein the P2P game networkcomprises a plurality of user devices as the nodes of the network, saidP2P game network being arranged to generate or process game data on asubset of the user devices of the game network in response to a userdevice not being a member of the subset user devices, generating a gamedata request to play a game.

In a second aspect, the disclosure provides a method of providing a gameover a peer to peer (P2P) game network, wherein the P2P game networkcomprises a plurality of user devices as the nodes of the network, saidP2P game network being arranged to generate or process game datarequired by the user devices of the P2P game network to play a game.

In one form, the method comprises the steps of:

-   -   receiving a game request from a first user device of the P2P        game network,    -   processing the game request received to decide game data        required by the game request,    -   generating the requested game data on the P2P network, and    -   providing the game data to the first user device that sent the        game request.

In one form, the step of receiving a game request comprises:

-   -   receiving the game request on a subset user devices of the P2P        game network, wherein the subset user devices do not include the        first user device that sent the game request.

In one form, the first user device and the subset user devices form asubnetwork of the overall P2P game network, wherein the subnetwork isalso a P2P network.

In one form, the data exchange between the devices of the subnetwork isin the form of protocol messages.

In one form, the requested game data is distributively generated by thesubset user devices of the P2P network. In another form, the requestedgame data is generated on each one of the subset user devices. In oneform, the method further comprises, before the step of receiving a gamerequest from a first user device of the P2P game network, generating afirst set of game data on the first user device based on one or moresensor outputs of the user device.

In a preferred form, the step of generating a first set of game data onthe first user device comprises:

-   -   retrieving or reading an output of the one or more sensors of        the user device,    -   generating the first set of game data based on sensor outputs in        a data format suitable for the game selected by the user.    -   In one form, the game request comprises data indicative of the        first set of game data generated on the first user device.

In one form, the game request also comprises data indicative of the gamechosen by the first user.

In one form, the game request comprises one or more data indicative ofthe first set of game data and/or the game chosen by the first user.

In one form, the method further comprises:

-   -   encapsulating the game request before sending it to the subset        user devices of the P2P game network.

In one form, the step of generating the requested game data on the P2Pnetwork comprises:

-   -   analysing the game request received to determine the first set        of game data already generated by the first user device and a        second set of game data required for completion of the selected        game,    -   generating the second set of game data required on the P2P        network based on the game request.

In one form, the one or more sensors may include one or more of thefollowing sensors: temperature sensor, light sensor, sound sensor,pressure sensor, gesture sensor, accelerometer, gyroscope, magnetometer,proximity sensor, heart rate sensor, fingerprint sensor, UV lightsensor, and any other sensor that a user device may be equipped with.

In one configuration, the one or more sensors include a temperaturesensor for measuring ambient temperature, or measuring temperatures ofvarious hardware components such as the CPU, GPU, hard drive ormotherboard of the programmable user device.

In one form, the data format is a format that comprises a series ofsingle digits 0 to 9.

In another form, the data format may be a format that comprises one ormore of graphic element, word elements, sound element or any othersuitable game elements.

In one form, after retrieving or reading an output of the one or moresensors of the user device, the method further comprises:

-   -   splitting the numerical value of the one or more sensor output        to a series of single digits 0 to 9; and/or    -   combining or arranging one or more single digits of the        numerical value to form numbers that have a predefined length;        and/or    -   referencing the numerical value of the output or one or more        single digits of the numerical value against a reference library        to convert the numerical value to one or more graphic elements.

In one form, the step of generating the second set of game data on theP2P network comprises: based on the game request, performing a series ofcombinatorial functions on the first set of data.

In one form, the step of generating the second set of game data on theP2P network comprises: based on the game request, performing a series ofcombinatorial functions on the first set of data.

In one form, the method further comprises encrypting the second set ofgame data generated by the subset devices, and decrypting the second setof game data on the first user device upon receiving such data from thesubset user devices.

In one form, the method further comprises:

-   -   after receiving the requested second set of game data on the        first user device,    -   assessing the game data against a set of winning conditions,    -   determining a game result,    -   displaying the game result to the user on a display of the user        device.

In another form, the method may include:

-   -   providing the first and the second set of game data to a server,    -   assessing the game data against a set of winning conditions on        the server,    -   determining a game result, and    -   providing the game result to the user device requested the game        data.

In one form, the set of winning conditions may include a lookup table ofpredefined sequences of game elements such as digits or numbers, graphicelements, icons, words and similar thereof.

In another form, the step of assessing the game data against a set ofwinning conditions may include comparing the first and the second set ofgame data, and the winning condition is determined based on thecorrelation or similarity of the two sets of data.

In one form, the game result is associated with a prize. The prize caninclude, e.g. a monetary or other types of rewards associated with thegame data received on the first user device.

In one form, the server is a remotely located cloud server.

In one form, the method further includes:

-   -   displaying advertising content on a display of the one or more        user devices of the P2P game network.

In one form, the method further includes:

-   -   transmitting advertising content from the server to the one or        more devices of the P2P network.

In a third aspect, the disclosure provides a method of playing a game ona first user device, the method comprising the steps of:

generating a game request on the first user device, wherein the gamerequest is indicative of a request for game data,

providing the game request to a game network, wherein the first userdevice is part of the game network, said game network comprises aplurality of user devices arranged to generate game data after receivingthe game request from the first user device,

receiving requested game data on the first user device.

In one form, the game network is a peer-to-peer network (herein: P2P)wherein the plurality of user devices are the nodes of the P2P network.

In one form, the step of providing the game request to the game networkcomprises:

-   -   providing the game request to a subset of the one or more user        devices of the game network, wherein the subset user devices are        selected from the game network based on a set of predetermined        rules, and the first user device and the subset user devices        form a subnetwork of the overall P2P game network during game        play.

In one form, the subnetwork is established and maintained by exchangingprotocol messages between devices of the subnetwork.

In one form, the game request is indicative of the type of game selectedby a user and the data required from the game network for completion ofa game.

In one form, the P2P network is a structured or a predefined network.

In another form, the P2P network is a hybrid P2P or an unstructurednetwork.

In one form, the method further comprises:

-   -   after receiving the requested game data by the first user        device,    -   assessing the game data against a set of winning conditions,    -   determining a game result,    -   displaying the game result to the user on a display of the user        device.

In another form, the method may include:

-   -   transmitting the game data to a server,    -   assessing the game data against a set of winning conditions on        the server,    -   receiving and displaying the game result on the user device.

In one form, the set of winning conditions may include a lookup table ofpredefined sequences of game elements such as digits or numbers, graphicelements, icons, words and similar thereof.

In one form, the game result is associated with a prize, wherein theprize can include cash or other types of rewards associated with thegame data received on the user device.

In one form, the server is a remotely located cloud server.

In one form, the method further includes:

-   -   displaying advertising content on a display of the one or more        user devices of the P2P game network.

In one form, the method further includes:

-   -   receiving advertising content transmitted from the server on one        or more devices of the P2P network.

In a fourth aspect, the disclosure provides a programmable user devicehaving a processor or processors that are configured to executecomputer-readable instructions to execute the method of the first,second or the third aspect of the disclosure.

In one form, the programmable user device may further comprise:

-   -   input means for enabling a user to play a game,    -   a communication module that is operable to form a data        communication link with devices of the game network,    -   a central processing unit for processing game data,    -   a user display for displaying relevant game information to the        user.

In one form, the user device may be a portable electronic device, suchas a smartphone, tablet, tablet computer, laptop, or PDA.

In a fifth aspect, the disclosure broadly consists in acomputer-readable medium having stored thereon computer executableinstructions that, when executed on a processing device or devices,cause the processing device to perform the method of the first, thesecond or the third aspect of the disclosure.

In one form, the computer executable instructions are in the form of auser application and more specifically a smartphone application or atablet device application downloadable from an application store such asGoogle Store, Apple App Store, or from other application sources.

In one form, the user application comprises:

-   -   a native application generally developed for use on a user        device, and    -   a software stack supporting the operation of the native        application.

In alternative embodiments, the native application may instead beprovided as a web application, or as a hybrid application.

In one form, the software stack comprise a plurality of customizedapplication modules and one or more network modules.

In one form, the software stack may include: a random number generatormodule, an input data processing module, a game selector module, apermutation module, a matching module, a discovery module, and a linkingmodule.

In a sixth aspect, the disclosure provides a method of playing a game ona first user device, the user device being a node of a P2P game networkcomprising a plurality of user devices, the method comprising:

-   -   on the first user device:    -   generating a game request, wherein the game request comprises a        request for game data,    -   providing the game request to a subset of the user devices of        the P2P game network, on the game network:        -   receiving the game request,        -   processing the game request received to decide additional            game data required by the game request,        -   generating the requested game data on a subset of user            devices, and        -   providing the game data to the user device that requested            the game data and/or to a server,    -   on the first user device,        -   generating and displaying a game result.

In a seventh aspect, the disclosure provides a method of playing a gameof chance including:

defining a base game of chance including;

-   -   awarding a prize corresponding to at least one winning outcome        of the game, wherein the value of said prize is related to a        value of a player's stake;    -   a corresponding apparent probability of achieving each winning        outcome, based on [a set of game rules/a nature of the game].

In one form, the method further including:

receiving from a player a selected prize, having a nominal value;

modifying the base game of chance based on a relative value of:

-   -   the player's interaction with an advertising content associated        with playing said game; and    -   a stake corresponding to prize having said nominal value as        defined by the base game.

Preferably modifying the base game of chance includes determining amodified probability of achieving each winning outcome, based on therelative values. For example this can include scaling the apparentprobability to account for the relative values.

As used herein, except where the context requires otherwise the term‘comprise’ and variations of the term, such as ‘comprising’, ‘comprises’and ‘comprised’, are not intended to exclude other additives,components, integers or steps.

As used herein the term “and/or” means “and” or “or”, or both.

Reference to any prior art in the specification is not an acknowledgmentor suggestion that this prior art forms part of the common generalknowledge in any jurisdiction or that this prior art could reasonably beexpected to be understood, regarded as relevant, and/or combined withother pieces of prior art by a skilled person in the art.

BRIEF DESCRIPTION OF THE DRAWINGS

Embodiments of the disclosure will be described by way of example onlyand with reference to the accompanying drawings. In the drawings:

FIG. 1 is a schematic block diagram giving an overview of a system inaccordance with an exemplary embodiment of the disclosure;

FIG. 2 is a schematic diagram of a user device application for executingon a user device in accordance with an embodiment of the disclosure;

FIG. 3 shows a logical diagram of various sensor components of the userdevice which may be used by a random number generator module to producegame data required for a game;

FIG. 4 shows another logical diagram of game data generation utilisingvarious sensor components of a user device;

FIG. 5 shows a diagram of a P2P network comprising only two user device;

FIG. 6 shows a diagram of a P2P network comprising three user devices;

FIG. 7 shows a diagram of a P2P network comprising multiple peerdevices;

FIG. 8 shows a further extension of the P2P network comprising multiplepeer groups;

FIG. 9 shows an example of realization of the p2p network using protocolmessaging exchanges.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

In the following description, specific details are given to provide athorough understanding of the embodiments. However, it will beunderstood by one of ordinary skill in the art that the embodiments maybe practiced without these specific details. For example, softwaremodules, functions, circuits, etc., may be shown in block diagrams inorder not to obscure the embodiments in unnecessary detail. In otherinstances, well-known modules, structures and techniques may not beshown in detail in order not to obscure the embodiments.

Also, it is noted that the embodiments may be described as a processthat is depicted as a flowchart, a flow diagram, a structure diagram, ora block diagram. Although a flowchart may describe the operations as asequential process, many of the operations can be performed in parallelor concurrently. In addition, the order of the operations may berearranged. A process is terminated when its operations are completed. Aprocess may correspond to a method, a function, a procedure, asubroutine, a subprogram, etc., in a computer program. When a processcorresponds to a function, its termination corresponds to a return ofthe function to the calling function or a main function.

Aspects of the systems and methods described below may be operable onany type of user device or a mobile device. The term “user device”includes, but is not limited to, a wireless device, a mobile phone, amobile communication device, a smart phone, a user communication device,personal digital assistant (PDA), mobile hand-held computer, a tabletcomputer, a laptop computer, an electronic book reader and readingdevices capable of reading electronic contents and/or other types ofmobile devices typically used by individuals and/or having some form ofcommunication capabilities (e.g., wireless, wired, infrared, short-rangeradio, etc.).

Overview

A system of an embodiment of the disclosure can generally be implementedin a gaming environment shown in FIG. 1. The gaming environment,involves a plurality of game players each playing a game on theircorresponding user device 10 a, 10 b, 10 c, 10 d, 10 e, 10 f, 10 g, 10h, either individually or jointly as a group. The general systemarchitecture may be said to broadly comprise at least a user applicationconfigured to run on the user devices 10 a . . . 10 h of a P2P network12, in which the user devices 10 a . . . 10 h are the nodes of the P2Pnetwork 12. The user application facilitates game play via userinteracting with one or more interfaces of the user application. In oneform, the user application provides one or more leisure games, such asscratchy, lotto, or any other games suitable to be played on a portableuser device. The user application also manages the operation of the P2Pnetwork and the data communication between the user devices of the P2Pnetwork. In an exemplary embodiment, the user application is provided asa smart device application accessible from an app market such as thatprovided by Google, Apple, Microsoft or other sources. The userdownloads and installs the application on a selected user device such asa smartphone, tablet device or any other suitable electronic devices asmentioned above.

In addition, the system may also be used as marketing and advertisingtool for businesses by displaying advertising information to users ofthe system within the user application. Advertising and marketinginformation may be displayed to the user before, during, or after theuser plays a game. The marketing and advertising information may bedisplayed as banners, pop-up screens, or in any other suitable format.

After a user starts the user application, he or she is arranged toselect a game via operating a user interface of the application. Theuser may be asked to enter some input for the game selected, or the userapplication may automatically generates some input based on what theuser has selected. In accordance with the disclosure, at least some ofthe game data required for a game result to be calculated is generatedon a subset of peer user devices 10 a . . . 10 h of the P2P network 12,after the subset peer devices receive a game request from the first userdevice. In one form, the user application is arranged to generate afirst set of game data based on one or more sensor outputs of the firstuser device (on which the user application is running to play a game),and based on the data generated, generate and provide a game request tothe P2P network to request additional game data for completion of thegame being selected. The game request may include game data. It will beappreciated that the overall P2P network may comprise a plurality ofsubnetworks, wherein each subnetwork is established and maintained byexchanging protocol messages. The rest of the game data required forcompletion of the game is generated on the subset peer devices after aseries of data manipulation steps of the game request received. Inanother form, all of the game data required for a game result to becalculated is generated by subset of peer devices of the game networkafter a first user sends a game play request generally indicative ofwhich game the user has selected to play and what data is required forgenerating a game outcome.

Once the user application receives the additional game data generated bythe subset peer devices of the P2P network, the game data is analysed bythe user application and instantly a game result (e.g. win/loss) isdisplayed on a screen of the user device. In case of a loss, the usercan play another round of the same game or a different game subsequentlyat any time. In case of a win, the user is notified of an award or aprize in the form of a monetary prize or other forms of prizes.

In one form, the award or the prize offered to the winner of a game isdetermined based on a profit formula. In one form, the award or theprize won by the user for each game is determined based on the totalnumber of players in the system and the advertising revenue or profitreceived from businesses over a selected period.

The system architecture may also comprise a server application residingon a server 14. The server may be a central server or a cloud server.The system is designed so that the user application has minimal level ofinteraction with the server application when the user plays a game. Theserver application does not generate any game related data for users ofthe P2P network. All the game data is generated by user devices of theP2P network, which means the server application cannot alter, adjust orimpact the outcome of any game. The server application may be arrangedto manage user profiles, calculate prizes or awards, manage advertisingcontent displayed to users, configure user application updates, and soon.

User Application

FIG. 2 is a schematic diagram of a user device application 200 forexecuting on a user device in accordance with an embodiment of thedisclosure. For ease of explanation, the user device application hasbeen divided into various functional modules. In the exemplaryembodiment shown in FIG. 2, the user application 200 generally comprisestwo main components: a native application 202, and a customizable P2Psoftware stack 204 supporting the operation of the native application.In other alternative embodiments, the native application may instead beprovided as a web application, or as a hybrid application. The nativeapplication 202 (native app) is an application program that is generallydeveloped for use on a particular platform or device, and interfaceswith standard platform APIs and user-defined APIs with the user deviceoperating system. The software stack 204 or also known as the solutionstack is a set of software subsystems or components needed to create acomplete platform to support the operation of the native app.

With reference to FIG. 2, the software stack 204 may comprise at least aplurality of customized application modules and one or more networkmodules. The application modules may include at least a random numbergenerator module 206, an input data processing module 208, a gameselector module 211 a, a permutation module 210, and a matching module212. The network modules may include at least a discovery module 222 anda linking module 224. The various modules of the user applicationcooperate with other software or hardware components of the user deviceto support the user application and more specifically generate game dataas required by users of the P2P network.

According to the disclosure, the random number generator module 206generates game data required as input to a user selected game based onone or more user device sensor outputs. In one form, the random numbergenerator module 206 receives sensor data indicative of the user deviceand/or device ambient conditions measured by sensor components of theuser device, and encapsulates or modulates the sensor data foradditional security. This encapsulated or modulated sensor data is thenused as the source data for the first set of game data generated on thefirst user device. The sensor data may be subjected to a series of datamanipulation steps to be converted to a format suitable to be used bythe random number generator. The data manipulation steps may beperformed by the random number generator module 206, and/or by the inputdata processing module 208.

The input data processing module 208 performs further processing of thedata received from the random number generator module 206, and thentransmits the data generated on the first user device 10 a as part of agame request to subset peer devices 10 b, 10 c, 10 d, 10 e, 10 f, 10 g,10 h of the P2P network 12, to generate the additional data required forcompletion of the game.

The output of the random number generator module 206 may also bereceived or monitored by a game selector module 211, which enables auser to select a game to play. In one embodiment, the game selectormodule may only allow a user to select a game to play after the randomnumber generator module 206 has finished generating a first set of gameinput data. For example, after the user starts the user application, therandom number generator module immediately generates a set of game databy retrieving sensor component readings, and then notifies the gameselector module 211 that the user can now select a game to play. In oneform, the user application comprises a game library which includes allthe games that a game participant is enabled to play. After a userselects a game to play via operating the user interface, the gameselector module references the game library, and generates dataindicative of the type of the game picked by the participant.Preferably, the output of the game selector module 211 is alsoencapsulated or modulated by the random number generator module beforeit is transmitted to the P2P network as part of a game request.

As mentioned, the game data generated by the random number generatormodule 206 (e.g. first set of game data), is processed as part of a gamerequest, and subsequently processed on subset peer user devices of theP2P network 12 to generate additional game data as required by the game.The module that performs this step on each of the subset user devices isthe permutation module 210. The permutation module 210 receives the gamerequest including data indicative of what has already been generated bythe input data processing module 208 and the game selector module 211 ofthe first user device 10 a. The permutation module 210 of each userdevice in the subset of peer user devices 10 b . . . 10 h interpretsgame request received, to decide which game the user has selected toplay, and what additional data is required so a game result can bedetermined. The permutation module 210 then produces the additional gamedata required, and transmits the generated data, indicative of theadditional game data back to the matching module 212 of the first userdevice 10 a. As will be appreciated since a plurality of user devices inthe subset of peer user devices 10 b . . . 10 h will provide additionalgame data, any one device may only generate a portion of the additionalgame data.

The matching module 212 assesses first set of game data and additionaldata received from the subset peer devices 10 b . . . 10 h of the P2Pnetwork 12 against a set of predetermined winning conditions. Forexample, it correlates the additional game data received from the peerdevices of the P2P network 12 and the initial game data generated by theinput data processing module 208. If the additional game data receivedfrom the P2P network 12 and the initial game data generated on theuser's device 10 a meets certain criteria, for example if the two setsof data matches, then the user wins a game, and if the two sets of datado not match then the user loses the game.

Preferably, the devices that are in data exchange 10 a, 10 b (i.e. inthe same peer group) comprise common data locally stored on each of theuser devices that are in the same subnetwork of the overall P2P network,and the overall P2P network may comprise a plurality of such subnetworkswhich enable a different game to be played on each subnetwork. The datareference block is used to share common data needed by the devices.

The discovery module 222 allows a user device of the P2P network 12 todiscover other user devices of the P2P network to thereby establish anetwork connection.

The linking module 224 manages data communication between peer devicesin order to set up and maintain the operation of the P2P network. Thedata communication generally comprises exchanging message strings, e.g.protocol messages, comprising data representative of node informationsuch as device MAC address, present IP address, device computingresources or the like. In one form, the message strings are communicatedbetween peer devices in a form that is independent of an underlyingphysical, transport and network layer.

Preferably, the user devices are able to communicate with their peersthat are also running the user application through exchange of real-timemessages, thereby noting individual device and network states andkeeping them stored in their individual device caches. The soft-stateinstances (comprising each peer identifier, network conditions and thelist of peers to reach the destination peer) are maintained and updatedthrough exchange of messages through the software stack. In this way,any device that runs the user application will be able to communicatewith its peers regardless of what happens in the underlying physical,transport and network layers.

The software stack 204 enables soft-state network and peer identitystorage dynamically throughout the P2P network 12, which enables rapidrecovery of ongoing gaming sessions. In case the network connection at aparticipant's end goes down in the middle of a gaming session, his/hergaming session is automatically continued over the adjacent set of peersas originally discovered by the discovery module.

In a preferred embodiment, a game request, from a first user device, issent to a subset of the devices of the P2P network. The subset userdevices may be selected based on predetermined selection rules such asthe time that these devices joined the network, or the time that theyexchanged protocol messages with the first user device, or whether theuser application is active (i.e. a user is playing a game or viewingadvertising content) or idle, or any other criteria.

A preferred embodiment of the game data generation process is describedbelow. In this embodiment, the game data required for a game result tobe calculated is generated in two stages: the first stage datageneration occurs on a first user device, which is the user device thata user is currently using to play a game, and the game data generated isbased on device sensor output; the second stage data generation occurson one or more peer devices of the P2P network, of which the first userdevice is also a member node.

Stage 1: Data Gathering from Sensor Output of a First User Device

FIG. 3 shows a logical diagram of various sensor components of the userdevice 10 a which may be used by the random number generator module 206to produce a first set of the game data required for a game. In thisexample, game data is generated based on ambient temperature andhumidity. In various other embodiments, game data may be generated basedon other ambient and/or device conditions that can be either directlymeasured or retrieved by sensors of the user devices. In yet anotherembodiment, the ambient and/or device conditions may be obtained from athird party source for example the internet.

With reference to FIGS. 3, AD1 and AD2 are two analog-to-digitalconverters that can convert measured ambient conditions to digitalsignals that can be directly used as input of game data generation. Asan example, AD1 receives a value representative of ambient temperatureand AD2 receives a value representative of ambient humidity and thenboth output an 8-bit digital signal representative of the measuredconditions. In another embodiment, one or more ambient or deviceconditions may be measured or retrieved by the sensors equipped on theuser device.

The 8-bit data output of AD1 and AD2 are then fed into an externalsensor data processing unit ESD1 through communication buses CB1 andCB2. In one form, the ESD1 may be an adder which simply performs anaddition of the 8-bit data received from AD1 and AD2.

The output of ESD1 is fed into a function generator FG1 through datacommunication bus CB3. FG1 may be any type of function generator, forexample but not limited to a multiplier, a weighted adder or the like.Different weights may be allocated to the 8-bit data output of AD1 andAD2. For example, w1 to the temperature output u1 and w2 to the humidityoutput u2.

The output of FG1 is fed into a memory unit, or R1 via a similarcommunication bus.

FIG. 4 shows another logical diagram of game data generation utilisingvarious sensor components of the user device 10 a. In this example thegame data may be generated at least partially based on device conditionssuch as CPU (processor) temperature, CPU (processor) utilization, ormemory usage. The corresponding sensor data is read at the inputs ofthree corresponding 8-bit counters shown as PT1, PU1 and DM1 in FIG. 4.The counters may be data registers, adders, multipliers and any othertype of data counters. The output of the counters is fed to functionunit FG2. Similar to FG1, FG2 assigns weights to measured outputs of CPUtemperature (u3), CPU utilization (u4) and dynamic memory usage (u5).The output of FG2 is fed into a memory unit R2. R2 stores the weightedcombination of the measured data from various sensors including ambienttemperature and humidity, as well as device conditions such as CPUtemperature, CPU utilisation and dynamic memory usage. R2 may again be adynamic memory unit or static storage on the device. The output of R2,i.e. the device sensor output, is what the random number generatormodule uses to produce the game data.

In one embodiment, the weights w1, w2, w3, w4, w5 may vary with time togenerate different combinations of the sensor output data. In anotherembodiment, the weights may be programmed to vary automatically withdifferent sensor types, and/or based on the game selected by a user. Inanother embodiment, the weights may be altered, arbitrarily assigned todifferent types of sensor data based on ambient conditions of the gamingenvironment, time and/or other factors.

In one embodiment, the user device automatically allocates weightscorresponding to the sensor data of interest, as well as chooses thesensor type based on device policy settings. Thus, at any time, for anygaming situation, there is at least a unique combination of output datathat is driven from device sensor activities.

In one form, the one or more user device sensors may include one or moreof the following sensors: temperature sensor, light sensor, soundsensor, pressure sensor, gesture sensor, accelerometer, gyroscope,magnetometer, proximity sensor, heart rate sensor, fingerprint sensor,UV light sensor, and any other sensor that a user device may be equippedwith.

The random number generator 206 module may retrieve data stored in R2and subject it to further data processing steps. For example, themeasured results may be split into a series of single digits 0 to 9. Thedata may be referenced to a library and stored as graphic elementsinstead of single digits.

Stage 2: Additional Game Data Generation on the P2P Network

As mentioned above, additional game data is to be generated on a subsetof the peer devices of the P2P network after a game request has beenreceived. This step is to be described with reference to FIG. 5, whichshows a P2P network including only two user devices, Ui and Uj. Ui isthe initiator of a game, or the device that sent a game data request,and Uj is a peer device discovered and connected to Uj via a datacommunication network and on which additional game data is to begenerated.

As described above, the output of R2 is the weighted combination of theexternal and internal sensor data, shown as data block OPD1 in FIG. 5.In mathematical notation, OPD1:=F1(w1*u1, w2*u2, w3*u3, w4*u4, w5*u5),where F1 can be any function predetermined or chosen by the system. Thesize of the data block is defined as Ordinal (OPD1). In the exampleshown, the Ordinality of OPD1 is 4, which means the data block comprises4 blocks of data.

OPD1 is fed into the random number generator module of Ui. As the randomnumber generator modules receives OPD1, which is an indication that theuser is ready to play a game. The game chosen by the user is alsoinvoked, and the game selector module assigns the game strategy to theuser, and outputs game strategy data GSD1. In one form, game strategydata comprises a set of binary data generated based on a particular gamethat the user has chosen to play. The binary data shall ideally berandom. (For example, if User X chooses Solitaire to be played on aniPhone, the binary data generated as the game strategy at 9:15 AM(ambient conditions of the user device: CPU temperature 15 degrees C.)could be ABCDEF08, whereas if User X chooses Solitaire to be playedagain on his iPhone at 9:44 AM (ambient conditions of the user may ormay not have changed), the binary data generated is BFC89123.)

By way of example, if a user chooses to play Solitaire, then a set ofstrings corresponding to the Solitaire game instance would be invoked(for example a string AEFF9810248B, corresponding to the Solitaire gameinstance that is recognized on the user device Ui). In certainembodiments, the allocated memory may be in static storage area (e.g.BIOS/ROM/firmware). In mathematical notation, GSD1: =G1(g1, g2, . . . ,gn), where G1 is a predetermined or system defined data transferfunction. In this example, the Ordinality of GSD1 is 4, which means itcontains 4 data blocks. In one form, the Ordinality of GSD1 is the sameas the length of data generated by the random number generator module.

The random number generator module generates and outputs data blockIGD1, which becomes the game data inputted into the game selected by theuser of Ui. In mathematical notation, IGD1:=N1(n1, n2, . . . nk), whereN1 is a predetermined or system defined function. In this example, theOrdinality of IGD1 is also 4, which means the data contains four datablocks.

Ui discovers peer device through the discovery mechanism of the softwarestack, and sends a game request including the game data and gamingstrategy data information generated on Ui to Uj through the P2P networkestablished after initial discovery, where it is established through thediscovery protocol that Ui is the transmitter and Uj must be thecorresponding receptor. Data blocks (e.g. game data generated on Ui andgame strategy data blocks) are the communicated between devices. Thisdata may be encrypted.

On Uj, the permutation module receives the game request containing IGD1and GSD1 from Ui, and extracts information about which game the user ofUi has selected to play and the data Ui has inputted to the game. Basedon the extracted information, the permutation module generates datablock PTD1. In mathematical notation, this could be written asPTD1:=P1(IGD1, GSD1). The ordinality of this data block is the same asthat of the functional parametric input data generated on Ui by therandom number generator module. The permutation module basicallycontains a set of combinatorial functions P1, P2, . . . Pn. Eachindividual combinatorial function Pi is defined and implementedmathematically to work on the inputted values. Any combinatorialfunction can be implemented but it may implement functions that aregenerated along with the received game request. Examples of suchfunctions include a combination of recursion, weighted enumeration,bijective methods, exponential generating functions or the like. Thepermutation module selects a random set of combinatorial functions {Pj}that act on the game request data and produces output data.

The data block PTD1 is encapsulated bit by bit to generate data blockEOD1, which is stored on Uj and sent back to Ui, to the matching module.The encapsulated data is processed and data block MUD1 is generated bythe matching module. The matching module then assesses received dataagainst a set of predetermined winning conditions. For example it maycompare MUD1 with IGD1, if a match is made then the user has won thegame. If there is no match, then the user loses the game but can play anew game.

FIG. 6 shows a diagram of a P2P network comprising three user devices.In the multiple peer device P2P network, Ui as the game initiator stillgenerates initial game input data IGD1, and sends two game requestscomprising gaming strategy data and game input data IGD1 and GSD1, to Ujand Uk. The permutation module of each of Uj and Uk receives gamerequests, and outputs additional game data required as EOD1 and EOD2respectively. EOD1 and EOD2 are then sent back to the matching module ofUi. The user wins the game if the data outputted by the matching moduleis the same as his inputted data to the game.

FIG. 7 shows a P2P network comprising multiple peer devices U1, U2, U3,U4, U5 and U6. The software stack of the user application are connectedat the logic layer of an internet communication protocol. The peerconnection logic layer is established as a logical network by peersrunning the native app and the software stack. Once the peers areestablished, gaming commences. The network is continuously maintained bypeer devices exchanging protocol messages in the software stack.

FIG. 8 shows a further extension of how the network, and the peer-group,becomes rapidly scalable, attracting more people playing the same gameand creating a plurality of peer user groups. In FIG. 8, rather thanincreasing the complexity and size of the peer group as new devicesenter the network, new peer groups are created. In this example twodistinct peer groups have formed, one 800, comprising user devices U1A,U1B, U1C, U1D, U1E and U1F, and the other 802 comprising device U2A,U2B, U2C, U2D, U2E and U2F. Devices can leave each network, or swapbetween them as needed.

FIG. 9 shows a set of user scenarios for deploying one or more of theembodiments of this disclosure.

FIG. 9 (a) shows two end user devices, Device A and Device B, connectedas a physical network pair. Device A initiates a peer discovery P2Pprotocol message to Device B. Device B successfully recognizes Device Aas its physical peer and it extracts the received P2P game request,parses and reads the message fields and executes the gaming strategyinstructions on itself. Likewise, once the peer link is established, anyuser initiating a game on Device B will have the gaming strategyinstructions executed on Device A.

FIG. 9 (b) shows three end user devices, Device A, Device B and DeviceC. A peer discovery mechanism is initiated by Device A for Device C bysending a peer discovery P2P protocol message from Device A to Device Cvia Device B. Device C successfully recognizes Device A as its logicalpeer and it extracts the received P2P protocol message, parses and readsthe message fields and executes the gaming strategy. Likewise, once thepeer link is established, any user initiating a game on Device C willhave the gaming strategy instructions executed on Device A. Further,Device B sends a peer discovery P2P protocol message from it to DeviceC, and the peer link is established between Device B and Device C. For auser selecting a game on Device A, a game request will be sent to byboth Device B and Device C which will execute the gaming strategycollaboratively on both Device B and Device C. Should Device B decide toleave the peer group, Device A and Device C can still keep on playingand retain the original gaming session. Should thephysical/transport/network layer link between Device A and Device B failwhile all the devices are participating in a particular gaming session,that gaming session continues between Device B and Device C.

FIG. 9 (c) shows 5 end user devices, Device A, Device B, Device C,Device D and Device E. An instruction set involving a set/unset of the Lfield in the P2P protocol messages sets Device A and Device E to be partof a logical peer network L1, Device C and Device D to be part of asecond logical peer network L2. Device B is part of a separate logicalpeer network L3. By shutting off Device B in logical peer network L3through an unset of the L bit in the discovery P2P protocol messagebetween Device B and Device A, and through a set of the L bit in thepeer discovery P2P protocol message between Device A and Device C andDevice D, Device A can be included as a logical peer in the logical peernetwork L2 comprising Device C and Device D. This is an embodiment ofhow syndicated gaming happens when an external participant joins anexisting gaming group.

Advantages

As can be seen from the foregoing description certain embodiments of thepresent disclosure can provide a software platform having one or more ofthe following advantages. The platform can provide a gaming platformwhich is reliable and which remains functional at all times with thesame Quality of Service (QoS) levels. The system functions independentlyof the condition of its underlying physical, transport and networklayers. As each player receives game data from peer devices instead offrom a central server, the system is highly scalable and highlyresilient in the event of failure of components in the network. Thesystem automatically discovers new participant users and forms dynamicP2P networks within user groups to support the gaming sessions and mayrestore ongoing networking and communications sessions after a networkblackout. It enables a user to participate the game on any portableelectronic user devices such as mobile phones, tablet devices, laptops,PDAs, computers and similar thereof with minimum requirement on theunderlying internet speed. Moreover the platform can be relativelystraightforward to implement and require minimal ongoing intervention

Advertising Content

In some embodiments, the advertisers i.e. those entities, companies,brands of the like, can provide game prizes for awarding to players whoplay in games using the system, and optionally who win a game. Theprizes awarded may be in the form of goods or services, pointsredeemable for goods and services (e.g. loyalty points) or monetaryawards. In this way a player may be eligible to play games and win aprize without paying an entry fee or making a wager.

In one form, the user application displays advertising content atvarious stages of a game playing process, e.g. before, during, or aftera game. In addition, the advertising content may be automaticallyupdated as the user navigates to different interfaces of the userapplication, as the user switches to a different game, or each time asthe user application is initiated. The central server may transmitadvertising content to the user application at regular intervals, or asthe server receives a request from the user application for suchadvertising content. In some embodiments, the server may have amechanism to customize advertising content based on characteristicsand/or behaviour of each user, e.g. age, geographical location,frequency of using the user application, past game results, and so on.

The advertising content may be displayed as banners, pop-up screens,images, or in any other suitable format. In one form, the advertisingcontent may be dynamically linked to one or more additional advertisingpages. For example, after a user clicks on a banner, the userapplication may retrieve additional information from the central serverin regards to that banner, and display the additional information to theuser. The central server may keep track of such user interaction withthe advertising content, e.g. frequency of exploring advertisingcontent, time spent on viewing these information, types of advertisinginformation that interest the user the most, or the like, and onlytransmit content that the user is likely to be interested in.

Modifying the Winning Probability of a Game of Chance

In some embodiments the player may nominate the prize that they areplaying for. In such embodiments the value of the prize nominated caninfluence how the game is operated, and in particular the game strategyapplied.

For example, a player may choose to play roulette and they nominate aprize of $10 for a “Red or Black” bet. Under the rules of a base game ofroulette, to win $10 on a Red or Black bet the player must stake $5, andthe apparent odds of winning are 18/37 (assuming a single zero isemployed in the base roulette game). However, according to a presentembodiment, if the player completes an advertising survey associatedwith the game, a service which is considered to have a value of $6. Thegame is played at modified odds to account for the fact that the valueof the player's stake is greater than that necessary, so their odds ofwinning is improved. In a preferred embodiment the modified base gamehas an modified probability for the “Red or Black” bet of 108/185(determined by multiplying the apparent probability (18/37) by the ratioof the players stake to the stake corresponding to the desired prize(6/5). In this example the player's chance of winning goes from beingjust under 50% to over 50%.

In another example, if the player interacts with a lower valueadvertising content (e.g. views a short advertisement) the value of theinteraction may be a fraction of the stake. For example viewing anadvertisement may be worth $0.05, in which case the modified probabilityof succeeding in the “Red or Black” will become 18/3700.

Mathematically, modifying the operation of the game to have the modifiedodds is relatively easy, by determining the outcome of the game in twostages, where one stage represents the base game and another stagedetermines the modifier. The order is not important. As will beappreciated, as with most electronic gaming scenarios, therepresentation of the game that is presented to the player (e.g. shownon the screen) is a visual simulation of the game generated after theresult of the game has been determined, so the variable odds may not beapparent to the player. Alternatively the modified game could bedisplayed—e.g. an virtual expanded roulette wheel with 3700 numbers, buthaving only 18 Red numbers (assuming that the player selects picks Red),may be shown, to illustrate the modified odds of their game.

General

Embodiments may be implemented by hardware, software, firmware,middleware, microcode, or any combination thereof. When implemented insoftware, firmware, middleware or microcode, the program code or codesegments to perform the necessary tasks may be stored in amachine-readable medium such as a storage medium or other storage(s). Aprocessor may perform the necessary tasks. A code segment may representa procedure, a function, a subprogram, a program, a routine, asubroutine, a module, a software package, a class, or any combination ofinstructions, data structures, or program statements. A code segment maybe coupled to another code segment or a hardware circuit by passingand/or receiving information, data, arguments, parameters, or memorycontents. Information, arguments, parameters, data, etc. may be passed,forwarded, or transmitted via any suitable means including memorysharing, message passing, token passing, network transmission, etc.

In the foregoing, a storage medium may represent one or more devices forstoring data, including read-only memory (ROM), random access memory(RAM), magnetic disk storage mediums, optical storage mediums, flashmemory devices and/or other machine readable mediums for storinginformation. The terms “machine readable medium” and “computer readablemedium” include, but are not limited to portable or fixed storagedevices, optical storage devices, and/or various other mediums capableof storing, containing or carrying instruction(s) and/or data.

The various illustrative logical blocks, modules, circuits, elements,and/or components described in connection with the examples disclosedherein may be implemented or performed with a general purpose processor,a digital signal processor (DSP), an application specific integratedcircuit (ASIC), a field programmable gate array (FPGA) or otherprogrammable logic component, discrete gate or transistor logic,discrete hardware components, or any combination thereof designed toperform the functions described herein. A general purpose processor maybe a microprocessor, but in the alternative, the processor may be anyconventional processor, controller, microcontroller, circuit, and/orstate machine. A processor may also be implemented as a combination ofcomputing components, e.g., a combination of a DSP and a microprocessor,a number of microprocessors, one or more microprocessors in conjunctionwith a DSP core, or any other such configuration.

The methods or algorithms described in connection with the examplesdisclosed herein may be embodied directly in hardware, in a softwaremodule executable by a processor, or in a combination of both, in theform of processing unit, programming instructions, or other directions,and may be contained in a single device or distributed across multipledevices. A software module may reside in RAM memory, flash memory, ROMmemory, EPROM memory, EEPROM memory, registers, hard disk, a removabledisk, a CD-ROM, or any other form of storage medium known in the art. Astorage medium may be coupled to the processor such that the processorcan read information from, and write information to, the storage medium.In the alternative, the storage medium may be integral to the processor.One or more of the components and functions illustrated the figures maybe rearranged and/or combined into a single component or embodied inseveral components without departing from the disclosure. Additionalelements or components may also be added without departing from thedisclosure. Additionally, the features described herein may beimplemented in software, hardware, as a business method, and/orcombination thereof.

In its various aspects, the disclosure can be embodied in acomputer-implemented process, a machine (such as an electronic device,or a general purpose computer or other device that provides a platformon which computer programs can be executed), processes performed bythese machines, or an article of manufacture. Such articles can includea computer program product or digital information product in which acomputer readable storage medium containing computer programinstructions or computer readable data stored thereon, and processes andmachines that create and use these articles of manufacture.

The foregoing description of the invention includes preferred formsthereof. Modifications may be made thereto without departing from thescope of the invention as defined by the accompanying claims.

1. A method of providing a game over a peer to peer (P2P) game network,wherein the P2P game network comprises a plurality of user devices asthe nodes of the network, said P2P game network performing a methodcomprising: generating or processing game data on a subset of the userdevices of the game network, in response to a user device, not being amember of the subset user devices, generating a game data request toplay a game.
 2. A method of providing a game over a peer to peer (P2P)game network, wherein the P2P game network comprises a plurality of userdevices as the nodes of the network, said P2P game network performing amethod comprising: generating or processing game data required by theuser devices of the P2P game network to play a game.
 3. The method ofclaim 1 comprising the steps of: receiving a game request from a firstuser device of the P2P game network, processing the game requestreceived to decide game data required by the game request, generatingthe requested game data on the P2P network, and providing the game datato the first user device that sent the game request.
 4. The method ofclaim 3 wherein the step of receiving a game request comprises:receiving the game request on a subset user devices of the P2P gamenetwork, wherein the subset user devices do not include the first userdevice that sent the game request.
 5. The method of claim 1 wherein, thefirst user device and the subset user devices form a subnetwork of theoverall P2P game network, wherein the subnetwork is also a P2P network.6. The method of claim 1 wherein data exchange between the devices ofthe subnetwork is in the form of protocol messages.
 7. The method ofclaim 1 wherein the requested game data is distributively generated bythe subset user devices of the P2P network.
 8. The method of claim 1wherein, the method further comprises, before the step of receiving agame request from a first user device of the P2P game network,generating a first set of game data on the first user device based onone or more sensor outputs of the user device.
 9. The method of claim 1wherein, the step of generating a first set of game data on the firstuser device comprises: retrieving or reading an output of the one ormore sensors of the user device, generating the first set of game databased on sensor outputs in a data format suitable for the game selectedby the user.
 10. The method of claim 1 wherein, the game requestcomprises data indicative of the first set of game data generated on thefirst user device.
 11. The method of claim 10 wherein, the game requestfurther comprises data indicative of the game chosen by the first user.12. The method of claim 1 wherein, the method further comprises:encapsulating the game request before sending it to the subset userdevices of the P2P game network.
 13. The method of claim 1 wherein, thestep of generating the requested game data on the P2P network comprises:analysing the game request received to determine the first set of gamedata already generated by the first user device and a second set of gamedata required for completion of the selected game, and generating thesecond set of game data required on the P2P network based on the gamerequest.
 14. The method of claim 8 wherein, the one or more sensorsinclude one or more of the following sensors: temperature sensor, lightsensor, sound sensor, pressure sensor, gesture sensor, accelerometer,gyroscope, magnetometer, proximity sensor, heart rate sensor,fingerprint sensor, UV light sensor.
 15. The method of claim 14 wherein,the one or more sensors include a temperature sensor for measuringambient temperature, or measuring temperatures of various hardwarecomponents such as the CPU, GPU, hard drive or motherboard of theprogrammable user device.
 16. The method of claim 8 wherein afterretrieving or reading an output of the one or more sensors of the userdevice, the method further comprises: splitting the numerical value ofthe one or more sensor output to a series of single digits 0 to 9;and/or combining or arranging one or more single digits of the numericalvalue to form numbers that have a predefined length; and/or referencingthe numerical value of the output or one or more single digits of thenumerical value against a reference library to convert the numericalvalue to one or more graphic elements.
 17. The method of claim 13wherein, the step of generating the second set of game data on the P2Pnetwork comprises: based on the game request, performing a series ofcombinatorial functions on the first set of data.
 18. The method ofclaim 13 wherein the method further comprises: encrypting the second setof game data generated by the subset devices, and decrypting the secondset of game data on the first user device upon receiving such data fromthe subset user devices.
 19. The method of claim 13 wherein, the methodfurther comprises: after receiving the requested second set of game dataon the first user device, assessing the game data against a set ofwinning conditions, determining a game result, displaying the gameresult to the user on a display of the user device.
 20. The method ofclaim 13 wherein, the method includes: providing the first and thesecond set of game data to a server, assessing the game data against aset of winning conditions on the server, determining a game result, andproviding the game result to the user device requested the game data.21. The method of claim 20 wherein, the set of winning conditionsinclude a lookup table of predefined sequences of game elements such asdigits or numbers, graphic elements, icons, words.
 22. The method ofclaim 20 wherein, the step of assessing the game data against a set ofwinning conditions includes: comparing the first and the second set ofgame data, and the winning condition is determined based on thecorrelation or similarity of the two sets of data.
 23. The method ofclaim 1 wherein the game result is associated with a prize.
 24. Themethod of claim 20 wherein the server is a remotely located cloudserver.
 25. A method of playing a game on a first user device, themethod comprising the steps of: generating a game request on the firstuser device, wherein the game request is indicative of a request forgame data, providing the game request to a game network, wherein thefirst user device is part of the game network, said game networkcomprises a plurality of user devices arranged to generate game dataafter receiving the game request from the first user device, receivingrequested game data on the first user device.
 26. The method of claim 25wherein the game network is a peer-to-peer network (P2P network) whereinthe plurality of user devices are the nodes of the P2P network.
 27. Themethod of claim 25 wherein the step of providing the game request to thegame network comprises: providing the game request to a subset of theone or more user devices of the game network, wherein the subset userdevices are selected from the game network based on a set ofpredetermined rules, and the first user device and the subset userdevices form a subnetwork of the overall P2P game network during gameplay.
 28. The method of claim 27 wherein, the subnetwork is establishedand maintained by exchanging protocol messages between devices of thesubnetwork.
 29. The method of claim 25 wherein, the game request isindicative of the type of game selected by a user and the data requiredfrom the game network for completion of a game.
 30. The method of claim25 wherein the P2P network is any one of structured network, apredefined network, a hybrid P2P network or unstructured network. 31.The method of claim 25 wherein, the method further comprises: afterreceiving the requested game data by the first user device, assessingthe game data against a set of winning conditions, determining a gameresult, displaying the game result to the user on a display of the userdevice.
 32. The method of claim 25 wherein, the method furthercomprises: transmitting the game data to a server, assessing the gamedata against a set of winning conditions on the server, receiving anddisplaying the game result on the user device.
 33. The method of claim32 wherein, the set of winning conditions includes a lookup table ofpredefined sequences of game elements such as digits or numbers, graphicelements, icons, words and similar thereof.
 34. The method of claim 32wherein the game result is associated with a prize.
 35. The method ofclaim 25 wherein, the server is a remotely located cloud server.
 36. Aprogrammable user device having a processor or processors that areconfigured to execute computer-readable instructions to execute a methodas claimed in claim
 1. 37. The programmable user device of claim 36which further comprises: input means for enabling a user to play a game,a communication module that is operable to form a data communicationlink with devices of the game network, a central processing unit forprocessing game data, a user display for displaying relevant gameinformation to the user.
 38. The programmable user device of claim 36wherein said device comprises any one of: a smartphone, tablet, tabletcomputer, laptop, PDA, or other portable electronic device.
 39. Acomputer-readable medium having stored thereon computer executableinstructions that, when executed on a processing device or devices,cause the processing device to perform the method of claim
 1. 40. Amethod of playing a game on a first user device, the user device being anode of a P2P game network comprising a plurality of user devices, themethod comprising: on the first user device: generating a game request,wherein the game request comprises a request for game data, providingthe game request to a subset of the user devices of the P2P gamenetwork, on the game network: receiving the game request, processing thegame request received to decide additional game data required by thegame request, generating the requested game data on a subset of userdevices, and providing the game data to the user device that requestedthe game data and/or to a server, on the first user device, generatingand displaying a game result.